﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.DirectoryServices;
using System.IO;
using System.ComponentModel;

namespace Novell.DirectoryServices.Linq
{    /// <summary>
    /// Represents a source object used to talk to Directory Services.
    /// </summary>
    internal interface IDirectorySource
    {
        #region Properties

        /// <summary>
        /// Gets the logger for the source. Will be used in logging query information.
        /// </summary>
        TextWriter Log { get; }

        /// <summary>
        /// Root location captured by this source.
        /// </summary>
        string Root { get; }

        /// <summary>
        /// Search scope used when running queries against this source.
        /// </summary>
        SearchScope Scope { get; }

        /// <summary>
        /// Entity type this source will query for.
        /// </summary>
        Type OriginalType { get; }

        ///// <summary>
        ///// Searcher used to perform directory searches.
        ///// </summary>
        //DirectorySearcher Searcher { get; }

        /// <summary>
        /// The context that this directory source exists in.
        /// </summary>
        DirectoryContext Context { get; }
        #endregion

    }

}
